<?php
$PHP_SELF = str_replace( _DOCUMENT_ROOT, '', str_replace(chr(92),'/',__FILE__));

$pi = pathinfo(__FILE__);
// generate backup path = current dir / current filename (without extension)
$backup_path = $pi['dirname'].'/'.$pi['filename'];
$backup_path = str_replace( chr(92),'/', $backup_path ); /* replace chr(92) = \ */

if( Form::isRepeatedSubmit()) Page::message( 'warning', null, Lang::get('PREVENT_REPEATED_SUBMIT') );
	else
if(!empty($_REQUEST['text_file_posted']) && !empty($_REQUEST['file_path']) && strlen($_REQUEST['сontent'])>0 ){
	$_SESSION['posttime']=$_REQUEST['posttime'];
	
	$error = false;
	$_REQUEST['сontent'] = DB::magic_stripslashes( $_REQUEST['сontent'] );
	$file_path = _DOCUMENT_ROOT.$_REQUEST['file_path']; //myPrint($_REQUEST, '$_REQUEST');
	
	//SAVE
	if( !empty($_REQUEST['save_backup']) && is_file( $file_path ) ){
		
		$pi = pathinfo( $file_path );
		$backup_file_path = $backup_path.'/'.$pi['basename'] ;
		
		if(!is_dir($backup_path)){
			if(!mkdir($backup_path)){
				Page::message( 'error', null, 'Не удалось создать папку резерва '.
							str_replace( _DOCUMENT_ROOT, '', $backup_path));
				$error = true;
			}
		}
		
		if(!$error){
			$backupContent = file_get_contents( $file_path );
			if(file_put_contents( $backup_file_path, $backupContent )){
				$trim_backup_path=str_replace( _DOCUMENT_ROOT, '', $backup_file_path);
				Page::message( 'success', null, 
					'Резервная копия сохранена'.' в '.$trim_backup_path
				);
			}else{
				Page::message( 'error', null, 'Не удалось сохранить резерв в '.
				str_replace( _DOCUMENT_ROOT, '', $backup_file_path));
				$error = true;
			}		
		}
	}
	
	//SAVE
	if(!$error){
		if(file_put_contents( $file_path, $_REQUEST['сontent'] )){
			Page::message( 'success', null, 'Файл сохранен в '.
			str_replace( _DOCUMENT_ROOT, '', $file_path));
		}else{
			Page::message( 'error', null, 'Не удалось сохранить файл в '.
			str_replace( _DOCUMENT_ROOT, '', $file_path));
			$error = true;
		}
	}
}

$extension = "html";//расширение  по умолчанию
$pageTitle = Lang::get('TO_CREATE');
if( !empty($_REQUEST['file_path']) ){
	$file_path = _DOCUMENT_ROOT.$_REQUEST['file_path'];
	$pi = pathinfo( $file_path );
	$extension = $pi['extension'];//расширение
	
	//контент еще не получен и это реальный файл
	if(  is_file( $file_path )){//empty($_REQUEST['сontent']) &&
		$сontent = file_get_contents( $file_path );
		$pageTitle = Lang::get('TO_EDIT');
	}
	
	
	// смотрим оригинал, проверяем наличие backup
	if( empty($_REQUEST['origin_file_path']) ){
		$backup_file_path = $backup_path.'/'.$pi['basename'];
		if( is_file($backup_file_path) ){
			$trim_backup_path=str_replace( _DOCUMENT_ROOT, '', $backup_file_path);
			Page::message( 'info', null, 
				'В директории <b>резервных копий</b> найден файл с подобным именем '.$pi['basename'].'<br>'.
				'<a href="?file_path='.$trim_backup_path.'&origin_file_path='.$_REQUEST['file_path'].'">'.
				'<b>Внимание: не факт, что это копия именно этого файла!</b>'.
				'</a>'
			);
		}
	}else{ // смотрим backup, выводим ссылку на оригинал origin_file_path
		Page::message( 'warning', null,
			'Вы рассматриваете файл в директории <b>резервных копий</b>'.
			' <a href="?file_path='.$_REQUEST['origin_file_path'].'">'.'<br>'.
			'Назад'.'...</a>'
		);
	};
	
	
}

echo '<h3>'.$pageTitle.':</h3>';

?>
<script language="javascript" type="text/javascript" src="/admin/editarea/edit_area/edit_area_full.js"></script>
<script language="javascript" type="text/javascript" src="/admin/editarea.php?extension=<?php echo $extension;?>"></script>
<script language="javascript" type="text/javascript">
function onSubmitForm( formEl ){
	if(editAreaLoader.getValue('сontent').length<1){ alert('Пустой документ.'); return false;}
	if(document.getElementById('file_path').value.length<2){ alert('Укажите путь.'); return false;}
	
	if(!confirm('<?php echo Lang::get('TO_SAVE').': '.Lang::get('ARE_YOU_CONFIRM')?>')) return false;
	formEl.submit();
}
</script>

<?php echo Page::outMessages(); echo Form::outErrors( articles_form );?>
<form  method="post" class="panel" name="text_file_edit_form" action="<?php echo $PHP_SELF;?>" onsubmit="onSubmitForm();return false;">
<input type="hidden" name="posttime" value="<?php echo time();?>" />
<input type="hidden" name="text_file_posted" value="1">
<textarea style="width:99%;" name="сontent" id="сontent"><?php echo !empty($сontent)?$сontent:'';?></textarea><br>
<?php if( !empty($сontent) ){?>
	<input type="checkbox" name="save_backup" id="save_backup" <?php echo empty($_REQUEST['origin_file_path'])?'checked="checked"':''?> value="1"> <label for="save_backup">Сохранить резервную копию</label><br>
<?php } ?>	
<input type="submit" value="<?php echo Lang::get('TO_SAVE_AS')?>">
<input type="text" style="width:70%;" id="file_path" name="file_path" value="<?php echo Form::requested('file_path');?>">
</form>